/**
 * 根据不同的请求调用不同的命令类 客户端需要调用deal(text)
 */
public class TransformTextClient {

    public void deal(String text) {
        try {
            //判断语句是哪一种，并选择对应的方法进行解析
            //赋值语句 不存在how按照赋值语句处理
            if (!text.contains("how")) {
                //I1 V5 X10 L50 C100 D500 M1,000
                //定义罗马字母的语句，将单词和罗马字母放入map当中
                String[] text3 = text.split("is ");
                //如果is后面的单词数组是数字，根据罗马数字和数字 得到单位代表的大小
                String word = text3[1].trim().split(" ")[0];
                if (MyUtils.isNumeric(word)) {
                    //调用求单位的命令
                    Invoker invoker = new Invoker(new UnitCommand());
                    invoker.call(text);
                    return;
                }else {
                    //调用赋值命令
                    Invoker invoker = new Invoker(new DefineCommand());
                    invoker.call(text);
                    return;
                }
            }else{
                //调用问题命令
                Invoker invoker = new Invoker(new AskCommand());
                invoker.call(text);
                return;
            }
        }catch (Exception e){
            System.out.println("I have no idea what you are talking about");
//            System.out.println(e);
            return ;
        }
    }

}
